package com.shuoyue.ycgk.ui.recruitment.resume.major;

import com.shuoyue.ycgk.base.BasePresenter;
import com.shuoyue.ycgk.base.BaseResult;
import com.shuoyue.ycgk.base.BaseView;
import com.shuoyue.ycgk.entity.MajorSection;
import com.shuoyue.ycgk.entity.Resume;
import com.shuoyue.ycgk.entity.address.AddressBean;
import com.shuoyue.ycgk.net.RetrofitClient;
import com.shuoyue.ycgk.net.base.ApiSubscriber;
import com.shuoyue.ycgk.net.exception.NetErrorException;
import com.shuoyue.ycgk.net.gsondefaultadapter.Optional;
import com.shuoyue.ycgk.views.dialog.addresspicker.AddressPickerDialog;

import java.util.ArrayList;
import java.util.List;

import io.reactivex.Observable;


public interface MajorContract {
    interface View extends BaseView {
        void getMajorSuc(List<MajorSection> major);

    }

    class Presenter extends BasePresenter<View> {
        Model model = new Model();

        public void getMajor(String edu, String majorTitle) {
            Integer eduInt = null;
            switch (edu) {
                case "专科":
                    eduInt = 1;
                    break;
                case "本科":
                    eduInt = 2;

                    break;
                case "研究生":
                    eduInt = 3;

                    break;
                case "博士":
                    eduInt = 4;

                    break;
            }
            if (eduInt == 4) {
                mView.getMajorSuc(null);
                return;
            }
            apply(model.getMajor(eduInt, majorTitle))
                    .subscribe(new ApiSubscriber<Optional<String>>(mView, this) {
                        @Override
                        public void onNext(Optional<String> recruitmentMainInfoOptional) {
                            super.onNext(recruitmentMainInfoOptional);
                            String str = recruitmentMainInfoOptional.getIncludeNull();
                            if (str != null) {
                                List<MajorSection> mData = new ArrayList<>();
                                String[] line = str.split("@");
                                for (String section : line) {
//                                    MajorSection majorSection = new MajorSection();
                                    String[] clumes = section.split("#");
                                    if (clumes.length < 4) {
                                        continue;
                                    }
                                    String sectionName = clumes[1];
                                    String type = clumes[2];
                                    String majors = clumes[3];
                                    boolean hasSame = false;
                                    for (MajorSection MS : mData) {
                                        if (MS.getName().equals(sectionName)) {
                                            MS.addMajorType(type, majors);
                                            hasSame = true;
                                            break;
                                        }
                                    }
                                    if (!hasSame) {
                                        MajorSection majorSection = new MajorSection();
                                        majorSection.setName(sectionName);
                                        majorSection.addMajorType(type, majors);
                                        mData.add(majorSection);
                                    }
                                }
                                mView.getMajorSuc(mData);
                            } else {
                                mView.getMajorSuc(null);
                            }

                        }


                    });
        }


    }

    class Model {
        public Observable<BaseResult<String>> getMajor(Integer edu, String majorTitle) {
            return RetrofitClient.getInstance().getApi().getMajor(edu, majorTitle);
        }

    }
}
//"人文社会科学#哲学#哲学类#人文社会科学#经济学#经济学类#人文社会科学#经济学#财政学类#人文社会科学#经济学#金融学类#人文社会科学#经济学#经济与贸易类#人文社会科学#法学#法学类#人文社会科学#法学#政治学类#人文社会科学#法学#社会学类#人文社会科学#法学#民族学类#人文社会科学#法学#马克思主义理论类#人文社会科学#法学#公安学类#人文社会科学#法学#司法执行及技术类#人文社会科学#教育学#教育学类#人文社会科学#教育学#体育学类#人文社会科学#文学#中国语言文学类#人文社会科学#文学#外国语言文学类#人文社会科学#文学#新闻传播学类#人文社会科学#历史学#历史学类#自然科学#理学#数学类#自然科学#理学#物理学类#自然科学#理学#化学类#自然科学#理学#天文学类#自然科学#理学#地理科学类#自然科学#理学#海洋科学类#自然科学#理学#大气科学类#自然科学#理学#地球物理学类#自然科学#理学#地质学类#自然科学#理学#生物科学类#自然科学#理学#系统论类#自然科学#理学#心理学类#自然科学#理学#统计学类#自然科学#工学#力学类#自然科学#工学#机械类#自然科学#工学#仪器类#自然科学#工学#材料类#自然科学#工学#能源动力类#自然科学#工学#电气类#自然科学#工学#电子信息类#自然科学#工学#自动化类#自然科学#工学#计算机类#自然科学#工学#土木类#自然科学#工学#水利类#自然科学#工学#测绘类#自然科学#工学#化工与制药类#自然科学#工学#地质类#自然科学#工学#矿业类#自然科学#工学#纺织类#自然科学#工学#轻工类#自然科学#工学#交通运输类#自然科学#工学#海洋工程类#自然科学#工学#航空航天类#自然科学#工学#兵器类#自然科学#工学#核工程类#自然科学#工学#农业工程类#自然科学#工学#林业工程类#自然科学#工学#环境科学与工程类#自然科学#工学#生物医学工程类#自然科学#工学#食品科学与工程类#自然科学#工学#建筑类#自然科学#工学#安全科学与工程类#自然科学#工学#生物工程类#自然科学#工学#公安技术类#自然科学#农学#植物生产类#自然科学#农学#自然保护与环境生态类#自然科学#农学#动物生产类#自然科学#农学#动物医学类#自然科学#农学#林学类#自然科学#农学#水产类#自然科学#农学#草学类#自然科学#医学#基础医学类#自然科学#医学#临床医学类#自然科学#医学#口腔医学类#自然科学#医学#公共卫生与预防医学类#自然科学#医学#中医学类#自然科学#医学#中西医结合类#自然科学#医学#药学类#自然科学#医学#中药学类#自然科学#医学#法医学类#自然科学#医学#医学技术类#自然科学#医学#护理学类#人文社会科学#管理学#管理科学与工程类#人文社会科学#管理学#工商管理类#人文社会科学#管理学#农业经济管理类#人文社会科学#管理学#公共管理类#人文社会科学#管理学#图书情报与档案管理类#人文社会科学#管理学#物流管理与工程类#人文社会科学#管理学#工业工程类#人文社会科学#管理学#电子商务类#人文社会科学#管理学#旅游管理类#人文社会科学#艺术学#艺术学理论类#人文社会科学#艺术学#音乐与舞蹈学类#人文社会科学#艺术学#戏剧与影视学类#人文社会科学#艺术学#美术学类#人文社会科学#艺术学#设计学类#